import axios from 'axios'

//不要使用export default，那样的话只能导出一个，只使用default可以导出多个   
// export function request(config){
//     const instance = axios.create({
//         baseURL:'http://123.207.32.32:8000',
//         timeout:5000
//     })
// //把传进来的内容传给实例化的对象

// //发送真正的网络请求,但使内容会留在这里，传不出去
// instance(config)
//     .then(res=>{
//         console.log(res);
//     })
//     .catch(err=>{
//         console.log(err);
//     })
// }


// //解决方法一   通过回调函数获取
// export function request(config,success,failure){
//     const instance = axios.create({
//         baseURL:'http://123.207.32.32:8000',
//         timeout:5000
//     })
// //把传进来的内容传给实例化的对象

// //发送真正的网络请求,但使内容会留在这里，传不出去
// instance(config)
//     .then(res=>{
//         console.log(res);
//         success(res)
//     })
//     .catch(err=>{
//         console.log(err);
//         failure(err)
//     })
// }


//promise的方式
// export function request(config){
//     return new Promise((resolve,reject)=>{
//         const instance = axios.create({
//             baseURL:'http://123.207.32.32:8000',
//             timeout:5000
//         })
//         instance(config)
//             .then(res=>{
//                 resolve(res)
//             })
//             .catch(err=>{
//                 reject(err)
//             })
//     })
// }

export function request(config){
    
        const instance = axios.create({
            baseURL:'http://123.207.32.32:8000',
            timeout:5000
        })

        //全局的拦截
        // axios.interceptors.request.use()
        // axios.interceptors.response.use()

        //局部的响应
        
        instance.interceptors.request.use(res=>{
            //拦截下来的是请求的配置，还可以添加图标，请求的时候显示出来，再响应的时候进行隐藏
            //携带内容，如果没有必要的项目，就可以通过判断进行提示
            console.log(res)
            return res
        }),err=>{
            //没有发送出去的时候进入的操作
            console.log(err)
        }
        instance.interceptors.response.use(res=>{
            return res.data
        }),err=>{
            console.log(err)
        }

        //return的返回值就是一个promise
        return instance(config)
}
